<?php

/**
 * DadosUsuario form.
 *
 * @package    form
 * @subpackage DadosUsuario
 * @version    SVN: $Id: sfDoctrineFormTemplate.php 6174 2007-11-27 06:22:40Z fabien $
 */
class DadosUsuarioFilhoForm extends BaseDadosUsuarioForm
{
	public $cliente;

	public function configure()
	{
		parent::configure();

		//Embed form de endereco
//        if($this->getObject()->DadosEndereco->id_endereco != "")
//        	$endereco   							= $this->getObject()->DadosEndereco;
//        else
//        	$endereco   							=  new Endereco();
//
//		$endereco->DadosUsuario		= $this->getObject();
//		$form_endereco 				= new EnderecoForm($endereco);
//		$this->embedForm('endereco', $form_endereco);

		$this->widgetSchema['dt_nascimento']    = new sfWidgetFormInput(array(), array('class'=>"is_date_picker")) ;
		$this->widgetSchema['cliente']     		= new sfWidgetFormInputHidden(array()) ;
		$this->widgetSchema['no_usuario']       = new sfWidgetFormInput(array(), array('size' => 50,'class'=>"{required:true, messages:{required:'O campo Nome Completo é obrigatório.'}}")) ;
		$this->widgetSchema['sobrenome']        = new sfWidgetFormInput(array(), array('required' => false, 'size' => 50));
		$this->widgetSchema['email']         	= new sfWidgetFormInput(array(), array('size' => 50));
		$this->widgetSchema['nu_cpf']           = new sfWidgetFormInput(array(), array('class'=>"cpf {required:true, messages:{required:'O campo CPF é obrigatório.'}}")) ;
		$this->widgetSchema['sexo']             = new sfWidgetFormChoice(array("choices"=>array("M" => "Masculino", "F" => "Feminino")));
		$this->widgetSchema['st_estado_civil']  = new sfWidgetFormChoice(array("choices"=>array("S" => "Solteiro(a)", "C" => "Casado(a)", "D" => "Divorciado(a)", "V" => "Viúvo(a)", "O" => "Outro(a)")));
		$this->widgetSchema['ddd_tel_celular']  = new sfWidgetFormInput(array(), array('class'=>"input_ddd")) ;
		$this->widgetSchema['ddd_tel_fixo']  	= new sfWidgetFormInput(array(), array('class'=>"input_ddd {required:true, messages:{required:'O campo DDD do TELEFONE FIXO é obrigatório.'}}")) ;
		$this->widgetSchema['tel_fixo']  		= new sfWidgetFormInput(array(), array('class'=>"tel {required:true, messages:{required:'O campo TELEFONE FIXO é obrigatório.'}}")) ;
		$this->widgetSchema['tel_celular']  	= new sfWidgetFormInput(array(), array('class'=>"tel")) ;

		$this->widgetSchema['nu_cpf_pai']		= new sfWidgetFormInput(array(), array('class'=>"cpf")) ;
		$this->widgetSchema['nu_cpf_mae']   	= new sfWidgetFormInput(array(), array('class'=>"cpf")) ;

        $this->validatorSchema["dt_nascimento"] = new sfValidatori18nDate(array('required' => false));

		$this->setValidator('cliente', new sfValidatorString(array('required' => false)));

		$this->setValidator("nu_cpf", new sfValidatorCpfCnpj(array("type"=>"cpf", 'required' => false)));
		$this->setValidator("nu_cpf_pai", new sfValidatorCpfCnpj(array("type"=>"cpf", 'required' => false)));
		$this->setValidator("nu_cpf_mae", new sfValidatorCpfCnpj(array("type"=>"cpf", 'required' => false)));

        $schema = $this->validatorSchema;

        $postValidator = $schema->getPostValidator();
		$postValidators = array();
		
        if (isset($postValidator))
        	$postValidators[] = $postValidator;

        $this->validatorSchema->setPostValidator(new sfValidatorAnd($postValidators));

        $this->widgetSchema->setLabels(array(
                                      'nu_cpf'           	=> 'CPF',
                                      'no_usuario'       	=> 'Nome completo',
                                      'sobrenome'     	 	=> 'Sobrenome',
                                      'dt_nascimento' 	 	=> 'Data de nascimento',
      								  'nu_rg'			 	=> 'RG',
      								  'tel_fixo'		 	=> 'Telefone Fixo',
      								  'tel_celular'		 	=> 'Telefone Celular',
      								  'password'		 	=> 'Senha',
      								  'password2'		 	=> 'Confirme sua senha',
                                      'groups_list'      	=> "Grupos",
                                      'permissions_list' 	=> "Permissões",
      								  'username'		 	=> 'Login',
      								  'no_usuario_pai'		=> 'Nome do Pai',
      								  'nu_cpf_pai'		 	=> 'CPF do Pai',
      								  'st_estado_civil'		 => 'Estado Civil',
      								  'no_usuario_mae'		 => 'Nome da Mãe',
      								  'nu_cpf_mae'		 	=> 'CPF da Mãe',
      								  'nu_renda'		 	=> 'Renda (R$)',
      								  'nu_tempo_residencia'	=> 'Tempo de residência',
      								  'ds_profissao'		 => 'Profissão',
      								  'st_conjuge'			=> "Cônjuge ou companheito há mais de 2 anos?"
      								));

		unset($this['id_usuario_pai']);
      	$this->validatorSchema->setOption('allow_extra_fields', true);

	}

	public function saveEmbeddedForms($con = null, $forms = null)
	{
            //print_r($forms); die;
		if (null === $forms)
		{
			$endereco	= $this->getValue('endereco');
			$forms 		= $this->embeddedForms;

			if(isset($this->embeddedForms['endereco'] ))
			{
				foreach ($this->embeddedForms['endereco'] as $name => $form)
				{
					if (!isset($midia[$name]))
					unset($forms['endereco'][$name]);
				}
			}
		}

		return parent::saveEmbeddedForms($con, $forms);
	}



	public function setValidate($validate)
	{
		$this->validate = $validate;
	}
}